package net.xdclass.service;

import net.xdclass.model.ProductMessage;
import net.xdclass.request.CartItemRequest;
import net.xdclass.request.ConfirmOrderCartItems;
import net.xdclass.vo.CartItemVO;
import net.xdclass.vo.CartVO;

import java.util.List;

public interface ICartService {

    /**
     * 添加商品到购物车
     * @param cartItemRequest
     */
    void addToCart(CartItemRequest cartItemRequest);

    /**
     * 清空购物车
     */
    void clear();

    /**
     * 查看我的购物车
     * @return
     */
    CartVO getMyCart();

    /**
     * 删除购物项
     * @param productId
     */
    void deleteItem(long productId);

    /**
     * 修改购物车商品数量
     * @param cartItemRequest
     */
    void changeItemNum(CartItemRequest cartItemRequest);

    /**
     * 获取对应商品的信息
     * @param confirmOrderCartItems
     * @return
     */
    List<CartItemVO> confirmOrderCartItems(ConfirmOrderCartItems confirmOrderCartItems);

    /**
     * 释放购物车商品记录
     * @param productMessage
     * @return
     */
    boolean releaseCartProductStock(ProductMessage productMessage);
}
